package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @desc ImplementSegQueryExecuteCycleComReqDto
 * @使用场景
 */
@Data
public class ImplementSegQueryExecuteCycleComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 数据对象表名
     */
    @NotNull(message = "数据对象表名不能为空")
    @ApiModelProperty("数据对象表名")
    private String businessDataSetTableName;

    /**
     * 数据条数
     */
    @NotNull(message = "数据条数不能为空")
    @ApiModelProperty("数据条数")
    private Long datasNum;

    /**
     * 排序字段名
     */
    @NotNull(message = "排序字段名不能为空")
    @ApiModelProperty("排序字段名")
    private String orderFieldName;

    /**
     * 排序规则 FROM_LARGE_TO_SMALL:数据值从大到小 FROM_SMALL_TO_LARGE:数据值从小到大
     */
    @NotNull(message = "排序规则不能为空")
    @ApiModelProperty("排序规则")
    private String orderRule;

    /**
     * 最后一条数据对象ID
     */
    @ApiModelProperty("最后一条数据对象ID")
    private String lastDataObjectId;

    /**
     * 周期开始时间
     */
    @ApiModelProperty("周期开始时间")
    private Date cycleStartTime;

    /**
     * 时间字段规则1
     */
    @ApiModelProperty("周期开始时间查询规则")
    private String comTimeFieldRule1;

    /**
     * 周期结束时间
     */
    @ApiModelProperty("周期结束时间")
    private Date cycleEndTime;

    /**
     * 时间字段规则2
     */
    @ApiModelProperty("周期结束时间查询规则")
    private String comTimeFieldRule2;

    /**
     * 关联目标内容类型编码
     */
    @ApiModelProperty("关联目标内容类型编码")
    private String relateContentTypeCode;

    /**
     * 关联目标内容ID
     */
    @ApiModelProperty("关联目标内容ID")
    private String relateContentId;

    /**
     * 评价模板ID
     */
    @ApiModelProperty("评价模板ID")
    private String evaluationTemplateId;

    /**
     * 主体生命周期
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

}
